package cn.tedu.tmall.admin.mall.startup;

import cn.tedu.tmall.admin.mall.pojo.vo.CategoryTreeVO;
import cn.tedu.tmall.admin.mall.service.ICategoryService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 实现系统启动加载商品列别树到redis
 * @Author: goodman
 * @Date: 2024/3/1 10:20
 */
@Slf4j
@Component
public class SystemStartup implements ApplicationRunner {
    //思考可以有哪几种方式 可以在spring-boot容器启动的时候帮我们干点事情

    @Autowired
    private ICategoryService categoryService;

    @Autowired
    private RedisTemplate redisTemplate;

    /**
     * @param args
     * @throws Exception
     */
    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("通过ApplicationRunner开始初始化商品分类数据到redis");
        //这里面不要写业务代码，应该让service来实现
        categoryService.initCategoryToCache();
    }

    //@PostConstruct
    //public void init(){
    //    log.info("通过PostConstruct注解开始初始化商品分类数据到redis");
    //}

    //@Override
    //public void afterPropertiesSet() throws Exception {
    //    log.info("通过afterPropertiesSet注解开始初始化商品分类数据到redis");
    //}
}
